package C.e.io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**       **************************************************************************************************************
 *I0: Input利和Output，即:输入与输出
 * *Java将输入和输出用"流Stream"表达，分为输入流和输出流，
 * *我们可以将它们想象为连接我们的程序和另一个设备之间的"管道"，通过它们可以读写设备
 * *Java将流输入流和输出定义了两个对应的超类InputStream和OutputStream:
 * *1)InputStream:
 * 输入流，方向是从外界到程序的方向，用于读取数据的流，是一个抽象类，定义了读取字节的相关方法
 * *2)0utputStream :
 * 输出流，方向是从程序到外界的方向，用于写出数据的流，是一个抽象类，定义了写出字节的相关方法
 * 文件流:FileInputStream和FileOutputStream
 * *文件流继承自InputStream和OutputStream，用于对文件进行读写操作
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {


        File file=new File("fos.dat");
        FileOutputStream fos=new FileOutputStream(file);//根据File实例定义文件输出流
         //FileOutputStream fos=new FileOutputStream("fos.dat");//定义文件输出流
        fos.write(1);//向fos.dat中写入了1个字节
        fos.write(2);//向fos.dat中又写入一个字节
        System.out.println("写出完毕");
        fos.close();//关闭流

          /*
          文件输出流两个常用的构造器:
          1)FileOutputStream(String fileName)
          2)FileOutputStream(File file)
          文件流创建时如果指定的文件不存在则会自动创建，前提是该文件所在的目录必须存在，若不存在则发生异常
         */
       /* File file = new File("q.dat");
        FileOutputStream fos = new FileOutputStream(file,true);
        //FileOutputStream fos = new FileOutputStream("fos.dat");
        fos.write(1);
        fos.write(2);
        //fos.write(-1);
        System.out.println("写出完毕!");
        fos.close();*/




    }
}
